﻿<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<script>
var path = 'one/two/three';
window.requestFileSystem = window.requestFileSystem || window.webkitRequestFileSystem;
//创建目录
function createDirectory(rootDirEntry, folders){   
    window.requestFileSystem(           
        PERSISTENT, 
        1024,  
        //请求文件系统成功时所执行的回调函数
        function(fs){
            //使用递归函数创建每一级子目录             
            createDir(fs.root, path.split('/'));                   
        },    
        //请求文件系统失败时所执行的回调函数       
        errorHandler         
    );
}
//创建目录时使用的递归函数
function createDir(rootDirEntry, folders){   
    //将“/foo/.//bar”之类的目录名中的'./' or '/'文字剔除
    if (folders[0] == '.' || folders[0] == '') {
        folders = folders.slice(1);
    } 
    rootDirEntry.getDirectory(folders[0], {create: true}, 
        //创建目录成功时所执行的回调函数 
        function(dirEntry) {            
            if (folders.length) {
                document.getElementById("result").innerHTML += dirEntry.name+"目录已创建<br/>";
                //调用递归函数创建该目录下的子目录
                createDir(dirEntry, folders.slice(1));
            }                
        }, 
        //创建目录失败时所执行的回调函数
        errorHandler
    );
}
function errorHandler(e) {
    switch (e.code) {
        case FileError.QUOTA_EXCEEDED_ERR:
            console.log('文件系统所使用的存储空间的尺寸超过磁盘限额控制中指定的空间尺寸');
            break;
        case FileError.NOT_FOUND_ERR:
            console.log('未找到文件或目录');
            break;
        case FileError.SECURITY_ERR:
            console.log( '操作不当引起安全性错误');
            break;
        case FileError.INVALID_MODIFICATION_ERR:
            console.log('对文件或目录所指定的操作不能被执行');
            break;
        case FileError.INVALID_STATE_ERR:
            console.log('指定的状态无效');
    };
}

</script>
</head>
<body>
<h1>创建树形目录</h1>     
<input type="button" value="创建目录" onclick="createDirectory()"><br/>    
<output id="result" ></output> 
</body>     
</html> 
